Updating change information for current copy relationships when establishing a new copy relationship having overlapping data with the current copy relationships

ABSTRACT

Provided are a computer program product, system, and method for updating change information for current copy relationships when establishing a new copy relationship having overlapping data with the current copy relationships. A first copy relationship indicates changed first source data to copy to first target data. An establish request is processed to create a second copy relationship to copy second source data in to second target data. A second copy relationship is generated, in response to the establish request, indicating data in the second source data to copy to the second target data. A determination is made of overlapping data units in the first source data also in the second target data. Indication is made in the first copy relationship to copy the overlapping data units. The first source data indicated in the first copy relationship is copied to the first target data, including data for the overlapping data units.

BACKGROUND OF THE INVENTION 1. Field of the Invention

The present invention relates to a computer program product, system, and method for updating change information for current copy relationships when establishing a new copy relationship having overlapping data with the current copy relationships.

2. Description of the Related Art

In a storage environment, a storage controller may create point-in-time (“PiT”) copies of a production volume using point-in-time copy techniques, such as the IBM FlashCopy® (FlashCopy is a registered trademark of IBM), snapshot, etc. A point-in-time copy replicates data in a manner that appears instantaneous and allows a host to continue accessing the source volume while actual data transfers to the copy volume are deferred to a later time. The point-in-time copy appears instantaneous because Input/Output (“I/O”) complete is returned to the copy operation in response to generating the relationship data structures without copying the data from the source to the target volumes. Point-in-time copy techniques typically defer the transfer of the data in the source volume at the time the point-in-time copy relationship was established to the copy target volume until a write operation is requested to that data block on the source volume. Data transfers may also proceed as a background copy process with minimal impact on system performance. The point-in-time copy relationships that are immediately established in response to the point-in-time copy command include a bitmap or other data structure indicating the location of blocks in the volume at either the source volume or the copy volume. The point-in-time copy comprises the combination of the data in the source volume and the data to be overwritten by the updates transferred to the target volume.

For an incremental FlashCopy®, after an incremental copy is established, change recording information for the FlashCopy® relationship keeps of tracks in the source volume that are updated. The updated tracks from the source volume indicated in the change recording information are copied over to the target volume of the FlashCopy® when a subsequent incremental FlashCopy® is established for the source volume. In this way, only the updated tracks indicated in the change recording information are copied over.

The target volume of the incremental FlashCopy relationship may be write inhibited or writes allowed. If writes are allowed, then separate target change recording information is needed to keep track of tracks from the target volume that are updated so they will not be overwritten by data from changed tracks from the source volume copied to the target volume.

There is a need in the art for improved techniques for managing multiple point-in-time copies that have common source and target data.

SUMMARY

Provided are a computer program product, system, and method for updating change information for current copy relationships when establishing a new copy relationship having overlapping data with the current copy relationships. A first copy relationship indicates changed first source data in one of the at least one storage to copy to first target data in one of the at least one storage. An establish request is processed to create a second copy relationship to copy second source data in one of the at least one storage to second target data in one of the at least one storage. A second copy relationship is generated, in response to the establish request, indicating data in the second source data to copy to the second target data. A determination is made of overlapping data units in the first source data also in the second target data. Indication is made in the first copy relationship to copy the overlapping data units at the first source data to the first target data. The first source data indicated in the first copy relationship is copied to the first target data, including data for the overlapping data units.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates an embodiment of a storage environment.

FIG. 2 illustrates an embodiment of components in a storage server.

FIG. 3 illustrates an embodiment of a copy relationship.

FIG. 4 illustrates an example of multiple copy relationships established between storage servers.

FIGS. 5a and 5b illustrate an embodiment of operations to establish a point-in-time copy relationship when the target data of the copy relationship to establish comprises source data of an existing copy relationship.

FIG. 6 illustrates a computing environment in which the components of FIG. 1 may be implemented.

DETAILED DESCRIPTION

In a backward cascade relationship, a new copy relationship may be established to copy a source volume to a target volume, where the target volume comprises the source volume of an existing copy relationship, such as an incremental copy relationship that copies changes to the data. Because the new copy relationship to establish will modify the source data of the already existing incremental copy relationship, if the change recording information of the existing incremental copy relationship is not set to copy the source data of the new copy relationship, then the correct data will not be copied in the already existing incremental relationship.

Described embodiments provide techniques to ensure that the data written from the new copy relationship to the source data of an existing incremental copy relationship is copied to the target data of the existing incremental relationship by determining overlapping data units in the target volume of the new copy relationship and the source volume of the existing incremental copy relationship. Indication is made in the existing incremental copy relationship to copy the overlapping data units at the source data of the existing copy relationship to the target volume of the existing copy relationship. In this way, described embodiments address the situation where copy operations for a new copy relationship to establish will affect the source data to copy for an already existing copy relationship.

FIG. 1 illustrates an embodiment of a data storage environment having a plurality of servers 100 ₁, 100 ₂, 100 ₃ . . . 100 _(N) managing access to volumes 102 ₁, 102 ₂, 102 ₃ . . . 102 _(N) of extents 104 ₁, 104 ₂, 104 ₃ . . . 104 _(N) configured in storages 106 ₁, 106 ₂, 106 ₃ . . . 106 _(N). Host systems 108 perform read and write operations with respect to the volumes 102 ₁, 102 ₂, 102 ₃ . . . 102 _(N) over a network 110. Extents 104 ₁, 104 ₂, 104 ₃ . . . 104 _(N) comprise groupings of tracks, blocks or other data units that is assigned to volumes 102 ₁, 102 ₂, 102 ₃ . . . 102 _(N).

The host 108 includes a copy manager program 112 _(H) to generate requests to establish point-in-time copies of source data in one of the volumes 102 ₁, 102 ₂, 102 ₃ . . . 102 _(N) to target data in another of the volumes 102 ₁, 102 ₂, 102 ₃ . . . 102 _(N) by submitting a point-in-time copy establish request to the servers 100 ₁, 100 ₂, 100 ₃ . . . 100 _(N). The point-in-time copies are defined in copy relationships 300 maintained in the host 106 and servers 100 ₁, 100 ₂, 100 ₃ . . . 100 _(N).

FIG. 2 shows the components included in each of the servers 100 ₁, 100 ₂, 100 ₃ . . . 100 _(N), including an operating system 114 and a point-in-time copy manager 112 to create and manage point-in-time copies, e.g., FlashCopy, snapshot, etc., in response to PiT copy establish requests from the host system 108 copy manager 112 _(H) When creating a PiT copy, the server copy manager 112 _(S) generates copy relationships 300 having information on the PiT copy created as of a point-in-time.

The operating system 114 in the servers 100 ₁, 100 ₂, 100 ₃ . . . 100 _(N) assigns extents of tracks in the storage 106 ₁, 106 ₂, 106 ₃ . . . 106 _(N) to the volumes 102 ₁, 102 ₂, 102 ₃ . . . 102 _(N), where data is stored in data units, such as tracks, logical block addresses (LBAs), extents, etc. An extent comprises a grouping of tracks, blocks or other data units that is assigned to volumes 102 ₁, 102 ₂, 102 ₃ . . . 102 _(N). The operating system 114 maintain volume tables 116 providing information on the configured volumes 102 ₁, 102 ₂, 102 ₃ . . . 102 _(N) The operating system 114 further manages I/O requests from the host systems 108 with respect to the volumes 102 ₁, 102 ₂, 102 ₃ . . . 102 _(N).

The storages 106 ₁, 106 ₂, 106 ₃ . . . 106 _(N) may comprise different types or classes of storage devices, such as magnetic hard disk drives, solid state storage device (SSD) comprised of solid state electronics, EEPROM (Electrically Erasable Programmable Read-Only Memory), flash memory, flash disk, Random Access Memory (RAM) drive, storage-class memory (SCM), etc., Phase Change Memory (PCM), resistive random access memory (RRAM), spin transfer torque memory (STM-RAM), conductive bridging RAM (CBRAM), magnetic hard disk drive, optical disk, tape, etc. The volumes 102 _(S), 102 _(T) may further be configured from an array of devices, such as Just a Bunch of Disks (JBOD), Direct Access Storage Device (DASD), Redundant Array of Independent Disks (RAID) array, virtualization device, etc. Further, the storages 106 ₁, 106 ₂, 106 ₃ . . . 106N may comprise heterogeneous storage devices from different vendors and different types of storage devices, such as a first type of storage devices, e.g., hard disk drives, that have a slower data transfer rate than a second type of storage devices, e.g., SSDs.

The network 110 may comprise a network such as one or more interconnected Local Area Networks (LAN), Storage Area Networks (SAN), Wide Area Network (WAN), peer-to-peer network, wireless network, etc.

FIG. 3 illustrates an instance of a copy relationship 300 _(i), which may include a PiT copy identifier 302 identifying the PiT copy created by the copy manager 112 _(i) (i.e., 112 _(H), 112 _(S)) at a server 100 _(i); a point-in-time 304 of the PiT copy 302, such that data is consistent as of that point-in-time 304; source data 306, e.g., source volume 102 _(i) at a source server 100 _(i), from which data is copied; target data 308, e.g., target volume 102 _(i), at a target server 100 _(i) to which the PiT data is copied; an extent range 310 indicating an entire volume 102 _(i) or a range of extents from a start track in a volume 102 _(i) comprising the source data in a volume 102 _(i); change information 312, such as a change recording bitmap, indicating source 306 or target data 308 that has been updated or changed; change information type 314 indicting whether the change information 312 is source or target, where source change information 312 indicates source data 306 updated since the point-in-time 304 that needs to be copied to corresponding target data 308 and where target change information 314 indicates target data 308 that has been separately updated since the point-in-time; a copy relationship type 316, where a first type copy relationship may indicate that both source and target copy relationships 300 _(S) and 300 _(T) are separately maintained to separately maintain source and target change information 312 indicating changes to the source data 306 and target data 308, respectively, and where a second type copy relationship may indicate that there is only a source and target copy relationship information on the target server such that the change information 312 indicates source data 306 and target data 308 updated since the point-in-time 304, where the updated source data needs to be copied to the target data 308; and an incremental flag 318 indicating whether the copy relationship 300 _(i) is for an incremental copy where only source data 306 that has changed since the point-in-time copy is copied to the target data 308 or a non-incremental copy having source data 306 as of the point-in-time before being changed.

In described embodiments, the source data 306 and target data 308 are in different volumes 102 ₁, 102 ₂, 102 ₃ . . . 102 _(N) managed by different servers 100 ₁, 100 ₂, 100 ₃ . . . 100 _(N). Alternatively, the source 306 and target data 308 of a copy relationship may be on the same volume in the same storage 106 i.

A non-incremental copy relationship change information may indicate the full source data that needs to be copied to the target data, and the information for a track is only reset when the track or data unit as of the point-in-time is copied to the target data.

In one embodiment, the host copy manager 112 _(H) may generate a point-in-time copy establish request to create a copy relationship, where the establish request may include all the information in copy relationship 300 _(i) information. If the copy relationship to establish comprises an incremental first type of copy relationship, then the copy manager 112 _(S) at the source server 100 _(S) having the source data for the copy relationship to establish may create a source copy relationship 300 _(S) information where the change information 314 indicates source data at a source volume 102 _(S) that has changed since the point-in-time 304 to copy to the target data 308. The copy manager 112 _(S) may then communicate to the target copy manager 112 _(T) at the target server 100 _(T) to create a target copy relationship 300 _(T) information where the change information 312 indicates target data 308 that has been updated by a separate host 108 independent of the source copy relationship 300 _(S). Such updates at the target are indicated so the changed source data will not be copied over target data 308 indicated as changed in the target change information 312.

If the copy relationship to establish comprises a second type of copy relationship, then the source copy manager 112 _(S) communicates the copy establish request to the target copy manager 112 _(T) to create a target copy relationship 300 _(T) where the change information 314 indicates changed source data 306 to copy to the target data 308, and may also indicate tracks in the target data 308 that have been updated. For the second type of copy relationship, upon updating source data 306, the source copy manager 112 _(S) would inform the target copy manager 112 _(T) of the data changed, and the target copy manager 112 _(T) would update the target change information 312 in the target copy information 300 _(T) to indicate the changed data and the target copy manager 112 _(T) may further indicate changes to the target data 308 in the target copy relationship 300 _(T).

Changed source data 306, indicated in the change information 312 for source copy relationship 300 _(S) for a first type copy relationship or target copy relationship 300 _(T) for second type of copy relationship, is copied over to the target data 308 when a subsequent incremental copy relationship is established for the source data 306.

The creation of the copy relationships 300 _(S), 300 _(T) appears instantaneous and allows host processes to continue accessing source data 306 of the copy relationship while actual data transfers to the target data of the copy relationship copy volume are deferred to a later time. For a non-incremental point-in-time copy relationship, source data 306 as of the point-in-time is copied to the target data 308 when updated, such that the source data 306 is copied before being updated. For an incremental point-in-time copy, changed source data changed after the point-in-time is copied to the target data 308 when a subsequent incremental copy relationship is established. The point-in-time copy establishment appears instantaneous because the source copy manager 112 _(S) returns I/O complete to the host copy manager 112 _(H) in response to generating the relationship data structures without copying the data.

FIG. 4 illustrates a backward cascade copy relationships 300 ₃ being established. Initially an incremental copy relationship 300 ₁ is established to copy source data 306 from a volume 102 ₂ on server 100 ₂ to target data 306 on server 102 ₃. An additional incremental copy relationship 300 ₂ is established to copy source data 306 from the volume 102 ₂ on server 100 ₂ to copy to target data 306 in volume 102 ₄ on server 100 ₄. After the incremental copy relationships 300 ₁, 300 ₂ are established, the host 106 may establish a third copy relationship 300 ₃ from source data 306 in the volume 102 ₁ to target data 308 in the volume 102 ₂, which may overlap with the source data of copy relationships 300 ₁, 300 ₂. Described embodiments provide techniques to maintain the integrity of the existing incremental copy relationships 300 ₁, 300 ₂ when a backward cascade relationship is established to copy source data from a volume to the source data of the existing incremental relationships.

In one embodiment, the backwards cascade relationship 300 ₃ would be non-incremental if the current relationship 300 ₂, whose source data is the target data of the backwards cascade relationship 300 ₃, comprises a first type incremental relationship. In a further embodiment, the backward cascade relationship 300 ₃ may be a first or second type incremental copy relationship if the current incremental copy relationship 300 ₂, whose source data is the target data of the backwards cascade relationship 300 ₃, comprises a second type incremental copy relationship.

FIGS. 5a and 5b illustrate an embodiment of operations performed by at least one of the copy managers 112 i, such as at least one of the host 112 _(H), source server 112 _(S), and target server 112 _(T) copy managers to establish a copy relationship. The source copy manager 112 _(S) in the source server 100 _(S) managing the source data of the copy relationship to establish receives (at block 500) from the host copy manager 112 _(H) a request to establish an incremental or non-incremental point-in-time copy relationship for a range of extents in a source volume 102 _(S). In response, the source copy manager 112 _(S) creates (at block 502) a source copy relationship 300 _(S) to indicate a range of extents 310 of the source data 306 in a source volume 102 _(S) to copy to target data 308 in a target volume 102 _(T), as well as other information, such as the incremental flag 318 indicating an incremental or non-incremental copy and, if an incremental copy, a type 316, whether it is a first type or second type of incremental copy operation. The source 112 _(S) or target 112 _(T) copy manager may then initiate (at block 504) an operation to create a target copy relationship 300 _(T) to provide change information 312 of changed target data to not overwrite with the indicated changed source data from the source copy relationship 300 _(S). The source 300 _(S) and target 300 _(T) copy relationships would have common information for fields 304, 306, 308, but have different change information 312 and change information type 314 indicating whether the change information 312 is for the source or target copy relationship, and have same or different source and target extent ranges 310 in a copy relationship.

The operation at block 504 may be performed if the copy relationship being established is a non-incremental copy relationship or an incremental first type of copy relationship. If the relationship being established comprises an incremental second type of copy relationship, then the source copy relationship would not be created at block 502 and the target copy relationship at block 504 would be used to indicate changes to the source data that need to be copied to the target data and changes to the target data 308, such that changed tracks in the target data 308 should not be updated with the changes from the source data 306.

Control then proceeds (at block 506) to block 508 in FIG. 5b to update any other copy relationships 112 _(i) having source data 306 that overlaps with the target data 308 of the copy relationship being created. Blocks 508 through 521 provide a loop of operations to perform for existing copy relationships 300 _(i) in the system For each copy relationship 300 _(i), if (at block 510) copy relationship 300 _(i) is for an incremental copy operation, as indicated in the incremental flag 318, and if (at block 512) the extent range 310 in the source 306 data for the copy relationship 300 _(i) overlaps with the extent range 310 of the copy relationship being established, then the source copy manager 112 _(S) determines (at block 514) the overlapping data units of the target data 308 of the copy relationship being established and the source data 306 of the existing incremental copy relationship 300 _(i) being considered.

If (at block 516) the incremental copy relationship 300 _(i) is a first type copy relationship, then the source copy manager 112 _(S) indicates (at block 518) in the source change information 312 of the existing incremental copy relationship 300 _(i) to copy the overlapping data units to the target storage 308.

If (at block 516) the incremental copy relationship 300 _(i) is a second type copy relationship, then the target copy manager 112 _(T) of the volume 102 _(T) having the target data 308 obtains (at block 520) a lock on the target volume 102 _(T) having the target data 308. The target copy manager 112 _(T) indicates (at block 522) in the target change recording information 312 of copy relationship 300 i (indicating changed source data 306 to copy) the overlapping data units, e.g., tracks, as changed so they will be copied to the target data 308. The lock on the target volume 102 _(T) having the target data 308 is then released (at block 524) and control proceeds (at block 528) to block 530 in FIG. 5a to continue establishing the copy relationship.

At block 530 in FIG. 5a , the copy manager 112 i completes (at block 530) creating the target copy relationship 300 _(T) for the copy relationship to establish 300 _(E) and returns (at block 532) complete to the establish command from the host copy manager 112 _(H).

With the operations of FIGS. 5a and 5b , when creating an incremental or non-incremental copy relationship to copy source data to target data, if the source data of an existing copy relationship is in a backward cascade relationship such that it is the target data of the new copy relationship to establish, then the change information of the changed source data to copy for this additional incremental copy relationship is updated to indicate overlapping data units between the target data of the copy relationship being created and the source data of a pre-existing incremental copy relationship. This ensures that when the overlapping data units in the target data of the new copy relationship being created is updated, as a result of processing the new copy relationship, the change information, for another copy relationship that has source data comprising the target data of the new copy relationship, is updated to indicate that the overlapping data units need to be copied to the target data of the other forward incremental copy relationship. This updating of change information across copy relationships ensures that source data in one copy relationship updated by another copy relationship remains consistent through all the copy relationships in which it is included.

The reference characters used herein, such as i, are used to denote a variable number of instances of an element, which may represent the same or different values, and may represent the same or different value when used with different or the same elements in different described instances.

The present invention may be a system, a method, and/or a computer program product. The computer program product may include a computer readable storage medium (or media) having computer readable program instructions thereon for causing a processor to carry out aspects of the present invention.

The computer readable storage medium can be a tangible device that can retain and store instructions for use by an instruction execution device. The computer readable storage medium may be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of the computer readable storage medium includes the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanically encoded device such as punch-cards or raised structures in a groove having instructions recorded thereon, and any suitable combination of the foregoing. A computer readable storage medium, as used herein, is not to be construed as being transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission media (e.g., light pulses passing through a fiber-optic cable), or electrical signals transmitted through a wire.

Computer readable program instructions described herein can be downloaded to respective computing/processing devices from a computer readable storage medium or to an external computer or external storage device via a network, for example, the Internet, a local area network, a wide area network and/or a wireless network. The network may comprise copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers and/or edge servers. A network adapter card or network interface in each computing/processing device receives computer readable program instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage medium within the respective computing/processing device.

Computer readable program instructions for carrying out operations of the present invention may be assembler instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state-setting data, or either source code or object code written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like, and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The computer readable program instructions may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including, for example, programmable logic circuitry, field-programmable gate arrays (FPGA), or programmable logic arrays (PLA) may execute the computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry, in order to perform aspects of the present invention.

Aspects of the present invention are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer readable program instructions.

These computer readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks. These computer readable program instructions may also be stored in a computer readable storage medium that can direct a computer, a programmable data processing apparatus, and/or other devices to function in a particular manner, such that the computer readable storage medium having instructions stored therein comprises an article of manufacture including instructions which implement aspects of the function/act specified in the flowchart and/or block diagram block or blocks.

The computer readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus or other device to produce a computer implemented process, such that the instructions which execute on the computer, other programmable apparatus, or other device implement the functions/acts specified in the flowchart and/or block diagram block or blocks.

The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts or carry out combinations of special purpose hardware and computer instructions.

The computational components of FIG. 1, including the host 108 and the servers 100 ₁, 100 ₂, 100 ₃ . . . 100 _(N) may be implemented in one or more computer systems, such as the computer system 602 shown in FIG. 6. Computer system/server 602 may be described in the general context of computer system executable instructions, such as program modules, being executed by a computer system. Generally, program modules may include routines, programs, objects, components, logic, data structures, and so on that perform particular tasks or implement particular abstract data types. Computer system/server 602 may be practiced in distributed cloud computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed cloud computing environment, program modules may be located in both local and remote computer system storage media including memory storage devices.

As shown in FIG. 6, the computer system/server 602 is shown in the form of a general-purpose computing device. The components of computer system/server 602 may include, but are not limited to, one or more processors or processing units 604, a system memory 606, and a bus 608 that couples various system components including system memory 606 to processor 604. Bus 608 represents one or more of any of several types of bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, and a processor or local bus using any of a variety of bus architectures. By way of example, and not limitation, such architectures include Industry Standard Architecture (ISA) bus, Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA) bus, Video Electronics Standards Association (VESA) local bus, and Peripheral Component Interconnects (PCI) bus.

Computer system/server 602 typically includes a variety of computer system readable media. Such media may be any available media that is accessible by computer system/server 602, and it includes both volatile and non-volatile media, removable and non-removable media.

System memory 606 can include computer system readable media in the form of volatile memory, such as random access memory (RAM) 610 and/or cache memory 612. Computer system/server 602 may further include other removable/non-removable, volatile/non-volatile computer system storage media. By way of example only, storage system 613 can be provided for reading from and writing to a non-removable, non-volatile magnetic media (not shown and typically called a “hard drive”). Although not shown, a magnetic disk drive for reading from and writing to a removable, non-volatile magnetic disk (e.g., a “floppy disk”), and an optical disk drive for reading from or writing to a removable, non-volatile optical disk such as a CD-ROM, DVD-ROM or other optical media can be provided. In such instances, each can be connected to bus 608 by one or more data media interfaces. As will be further depicted and described below, memory 606 may include at least one program product having a set (e.g., at least one) of program modules that are configured to carry out the functions of embodiments of the invention.

Program/utility 614, having a set (at least one) of program modules 616, may be stored in memory 606 by way of example, and not limitation, as well as an operating system, one or more application programs, other program modules, and program data. Each of the operating system, one or more application programs, other program modules, and program data or some combination thereof, may include an implementation of a networking environment. The components of the computer 602 may be implemented as program modules 616 which generally carry out the functions and/or methodologies of embodiments of the invention as described herein. The systems of FIG. 1 may be implemented in one or more computer systems 602, where if they are implemented in multiple computer systems 602, then the computer systems may communicate over a network.

Computer system/server 602 may also communicate with one or more external devices 618 such as a keyboard, a pointing device, a display 620, etc.; one or more devices that enable a user to interact with computer system/server 602; and/or any devices (e.g., network card, modem, etc.) that enable computer system/server 602 to communicate with one or more other computing devices. Such communication can occur via Input/Output (I/O) interfaces 622. Still yet, computer system/server 602 can communicate with one or more networks such as a local area network (LAN), a general wide area network (WAN), and/or a public network (e.g., the Internet) via network adapter 624. As depicted, network adapter 624 communicates with the other components of computer system/server 602 via bus 608. It should be understood that although not shown, other hardware and/or software components could be used in conjunction with computer system/server 602. Examples, include, but are not limited to: microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, and data archival storage systems, etc.

The terms “an embodiment”, “embodiment”, “embodiments”, “the embodiment”, “the embodiments”, “one or more embodiments”, “some embodiments”, and “one embodiment” mean “one or more (but not all) embodiments of the present invention(s)” unless expressly specified otherwise.

The terms “including”, “comprising”, “having” and variations thereof mean “including but not limited to”, unless expressly specified otherwise.

The enumerated listing of items does not imply that any or all of the items are mutually exclusive, unless expressly specified otherwise.

The terms “a”, “an” and “the” mean “one or more”, unless expressly specified otherwise.

Devices that are in communication with each other need not be in continuous communication with each other, unless expressly specified otherwise. In addition, devices that are in communication with each other may communicate directly or indirectly through one or more intermediaries.

A description of an embodiment with several components in communication with each other does not imply that all such components are required. On the contrary a variety of optional components are described to illustrate the wide variety of possible embodiments of the present invention.

When a single device or article is described herein, it will be readily apparent that more than one device/article (whether or not they cooperate) may be used in place of a single device/article. Similarly, where more than one device or article is described herein (whether or not they cooperate), it will be readily apparent that a single device/article may be used in place of the more than one device or article or a different number of devices/articles may be used instead of the shown number of devices or programs. The functionality and/or the features of a device may be alternatively embodied by one or more other devices which are not explicitly described as having such functionality/features. Thus, other embodiments of the present invention need not include the device itself.

The foregoing description of various embodiments of the invention has been presented for the purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise form disclosed. Many modifications and variations are possible in light of the above teaching. It is intended that the scope of the invention be limited not by this detailed description, but rather by the claims appended hereto. The above specification, examples and data provide a complete description of the manufacture and use of the composition of the invention. Since many embodiments of the invention can be made without departing from the spirit and scope of the invention, the invention resides in the claims herein after appended. 

What is claimed is:
 1. A computer program product for managing copy relationships of data in at least one storage, wherein the computer program product comprises a computer readable storage medium having program instructions embodied therewith, the program instructions executable by a processor to cause operations, the operations comprising: maintaining a first copy relationship indicating changed first source data in one of the at least one storage to copy to first target data in one of the at least one storage; processing an establish request to create a second copy relationship to copy second source data in one of the at least one storage to second target data in one of the at least one storage; generating a second copy relationship, in response to the establish request, indicating data in the second source data to copy to the second target data; determining overlapping data units in the first source data also in the second target data; indicating in the first copy relationship to copy the overlapping data units at the first source data to the first target data; and copying the first source data indicated in the first copy relationship to the first target data, including data for the overlapping data units.
 2. The computer program product of claim 1, wherein the generated second copy relationship comprises a source copy relationship having source change information to indicate second source data to copy to the second target data, wherein the operations further comprise: generating a target copy relationship indicating changed data of the second target data to not overwrite with the second source data from the source copy relationship, wherein the determining the overlapping data units and indicating in the first copy relationship to copy the overlapping data units are performed after creating the source copy relationship and before completing creating the target copy relationship.
 3. The computer program product of claim 1, wherein the at least one storage comprises a first storage, a second storage, and a third storage, wherein the first source data and the second target data comprises all or a portion of a first volume configured in the first storage, the first target data comprises all or a portion of a second volume configured in the second storage, and the second source data comprises all or a portion of a third volume configured in a third storage.
 4. The computer program product of claim 1, wherein the first copy relationship comprises an incremental copy relationship indicating the first source data that has changed, since a point-in-time when the first copy relationship was established, to copy to the first target data.
 5. The computer program product of claim 1, wherein after indicating in the first copy relationship to copy the overlapping data units, further performing the operations of: processing each of a plurality of additional copy relationships each having source data to copy to target data where the source data has overlapping data units with the second target data, wherein, for each of the additional copy relationships, indicating in the additional copy relationship to copy the overlapping data units to the target data of the additional copy relationship.
 6. The computer program product of claim 5, wherein for each of the first and the additional copy relationships, further performing: determining whether the first or the additional copy relationship comprises an incremental copy relationship to copy only changed data that changed since a point-in-time of the copy relationship, wherein the determining the overlapping data units and the indicating in the first and the additional copy relationships to copy the overlapping data units are in response to determining that the first and additional copy relationship comprises an incremental copy relationship.
 7. The computer program product of claim 5, wherein the indicating in the additional copy relationship to copy the overlapping data units to the target data of the additional copy relationship comprises indicating, in source change recording information of the additional copy relationship, indicating changes to the source data of the additional copy relationship, to copy the overlapping data units in response to the additional copy relationship having the source change recording information and target change recording information indicating changes to the target data of the additional copy relationship.
 8. The computer program product of claim 5, wherein the indicating in the additional copy relationship to copy the overlapping data units to the target data of the additional copy relationship comprises indicating, in target change recording information of the additional copy relationship indicating changed source data to copy to the target data of the additional copy relationship, to copy the overlapping data units in response to the additional copy relationship having the target change recording information indicating changes to the source data that need to be copied to the target data.
 9. The computer program product of claim 8, wherein the indicating in the additional copy relationship to copy the overlapping data units to the target data of the additional copy relationship comprises: obtaining a lock on the target data of the additional copy relationship, wherein the indicating in the target change recording information is performed in response to the obtaining the lock; and releasing the lock on the target data of the of the additional copy relationship in response to completing the indicating the overlapping data units in the target change recording information.
 10. The computer program product of claim 6, wherein each of the first and the additional copy relationships comprise one of a first type copy relationship and a second type copy relationship, wherein the first type copy relationship includes source change recording information indicating changes to source data to copy to target data and target change recording information indicating changed target data, wherein the second type copy relationship includes target change recording information indicating source data that needs to be copied to the target data and updated target data, wherein further performing, for each of the first and the additional copy relationships: determining whether the first or the additional copy relationship determined to comprise an incremental copy relationship is a first type copy relationship or a second type copy relationship, wherein the indicating in the first or the additional copy relationship to copy the overlapping data units to the target data of the additional copy relationship comprises; indicating, in the source change recording information of the first or the additional copy relationship, to copy the overlapping data units in response to determining the first or the additional copy relationship comprises the first type copy relationship; and indicating, in the target change recording information of the first or the additional copy relationship, to copy the overlapping data units in response determining the first or the additional copy relationship comprises the second type copy relationship.
 11. A system for managing copy relationships of data in at least one storage, comprising: a processor; and a computer readable storage medium having program instructions executed by a processor to cause operations, the operations comprising: maintaining a first copy relationship indicating changed first source data in one of the at least one storage to copy to first target data in one of the at least one storage; processing an establish request to create a second copy relationship to copy second source data in one of the at least one storage to second target data in one of the at least one storage; generating a second copy relationship, in response to the establish request, indicating data in the second source data to copy to the second target data; determining overlapping data units in the first source data also in the second target data; indicating in the first copy relationship to copy the overlapping data units at the first source data to the first target data; and copying the first source data indicated in the first copy relationship to the first target data, including data for the overlapping data units.
 12. The system of claim 11, wherein the generated second copy relationship comprises a source copy relationship having source change information to indicate second source data to copy to the second target data, wherein the operations further comprise: generating a target copy relationship indicating changed data of the second target data to not overwrite with the second source data from the source copy relationship, wherein the determining the overlapping data units and indicating in the first copy relationship to copy the overlapping data units are performed after creating the source copy relationship and before completing creating the target copy relationship.
 13. The system of claim 11, wherein the first copy relationship comprises an incremental copy relationship indicating the first source data that has changed, since a point-in-time when the first copy relationship was established, to copy to the first target data.
 14. The system of claim 11, wherein after indicating in the first copy relationship to copy the overlapping data units, further performing the operations of: processing each of a plurality of additional copy relationships each having source data to copy to target data where the source data has overlapping data units with the second target data, wherein, for each of the additional copy relationships, indicating in the additional copy relationship to copy the overlapping data units to the target data of the additional copy relationship.
 15. The system of claim 14, wherein for each of the first and the additional copy relationships, further performing: determining whether the first or the additional copy relationship comprises an incremental copy relationship to copy only changed data that changed since a point-in-time of the copy relationship, wherein the determining the overlapping data units and the indicating in the first and the additional copy relationships to copy the overlapping data units are in response to determining that the first and additional copy relationship comprises an incremental copy relationship.
 16. The system of claim 15, wherein each of the first and the additional copy relationships comprise one of a first type copy relationship and a second type copy relationship, wherein the first type copy relationship includes source change recording information indicating changes to source data to copy to target data and target change recording information indicating changed target data, wherein the second type copy relationship includes target change recording information indicating source data that needs to be copied to the target data and updated target data, wherein further performing, for each of the first and the additional copy relationships: determining whether the first or the additional copy relationship determined to comprise an incremental copy relationship is a first type copy relationship or a second type copy relationship, wherein the indicating in the first or the additional copy relationship to copy the overlapping data units to the target data of the additional copy relationship comprises; indicating, in the source change recording information of the first or the additional copy relationship, to copy the overlapping data units in response to determining the first or the additional copy relationship comprises the first type copy relationship; and indicating, in the target change recording information of the first or the additional copy relationship, to copy the overlapping data units in response determining the first or the additional copy relationship comprises the second type copy relationship.
 17. A method for managing copy relationships of data in at least one storage, comprising: maintaining a first copy relationship indicating changed first source data in one of the at least one storage to copy to first target data in one of the at least one storage; processing an establish request to create a second copy relationship to copy second source data in one of the at least one storage to second target data in one of the at least one storage; generating a second copy relationship, in response to the establish request, indicating data in the second source data to copy to the second target data; determining overlapping data units in the first source data also in the second target data; indicating in the first copy relationship to copy the overlapping data units at the first source data to the first target data; and copying the first source data indicated in the first copy relationship to the first target data, including data for the overlapping data units.
 18. The method of claim 17, wherein the generated second copy relationship comprises a source copy relationship having source change information to indicate second source data to copy to the second target data, wherein the operations further comprise: generating a target copy relationship indicating changed data of the second target data to not overwrite with the second source data from the source copy relationship, wherein the determining the overlapping data units and indicating in the first copy relationship to copy the overlapping data units are performed after creating the source copy relationship and before completing creating the target copy relationship.
 19. The method of claim 17, wherein the first copy relationship comprises an incremental copy relationship indicating the first source data that has changed, since a point-in-time when the first copy relationship was established, to copy to the first target data.
 20. The method of claim 17, wherein after indicating in the first copy relationship to copy the overlapping data units, further performing the operations of: processing each of a plurality of additional copy relationships each having source data to copy to target data where the source data has overlapping data units with the second target data, wherein, for each of the additional copy relationships, indicating in the additional copy relationship to copy the overlapping data units to the target data of the additional copy relationship.
 21. The method of claim 20, wherein for each of the first and the additional copy relationships, further performing: determining whether the first or the additional copy relationship comprises an incremental copy relationship to copy only changed data that changed since a point-in-time of the copy relationship, wherein the determining the overlapping data units and the indicating in the first and the additional copy relationships to copy the overlapping data units are in response to determining that the first and additional copy relationship comprises an incremental copy relationship.
 22. The method of claim 21, wherein each of the first and the additional copy relationships comprise one of a first type copy relationship and a second type copy relationship, wherein the first type copy relationship includes source change recording information indicating changes to source data to copy to target data and target change recording information indicating changed target data, wherein the second type copy relationship includes target change recording information indicating source data that needs to be copied to the target data and updated target data, wherein further performing, for each of the first and the additional copy relationships: determining whether the first or the additional copy relationship determined to comprise an incremental copy relationship is a first type copy relationship or a second type copy relationship, wherein the indicating in the first or the additional copy relationship to copy the overlapping data units to the target data of the additional copy relationship comprises; indicating, in the source change recording information of the first or the additional copy relationship, to copy the overlapping data units in response to determining the first or the additional copy relationship comprises the first type copy relationship; and indicating, in the target change recording information of the first or the additional copy relationship, to copy the overlapping data units in response determining the first or the additional copy relationship comprises the second type copy relationship. 